package com.sky.service;

import com.sky.dto.*;
import com.sky.entity.Orders;
import com.sky.result.PageResult;
import com.sky.result.Result;
import com.sky.vo.OrderStatisticsVO;
import com.sky.vo.OrderSubmitVO;

import java.time.LocalDateTime;

public interface OrderService {
    Orders FindById(Integer id);

    PageResult FindOrder(OrdersPageQueryDTO ordersPageQueryDTO);

    OrderStatisticsVO GetStatistics();

    void CompleteById(Integer id);

    void Cancel(OrdersCancelDTO ordersCancelDTO);

    void Rejection(OrdersRejectionDTO ordersCancelDTO);

    void delivery(Integer id);

    void Confirm(OrdersConfirmDTO ordersConfirmDTO);

    void cancelOrderById(Integer id);

    PageResult getPage(OrdersPageQueryDTO ordersPageQueryDTO, Long userId);

    void repetitionOrder(Integer id);

    OrderSubmitVO submitOrder(OrdersSubmitDTO ordersSubmitDTO, Long userId);

    LocalDateTime payment(OrdersPaymentDTO ordersPaymentDTO);
}
